Method for determining prediction direction, decoder, and computer storage medium

ABSTRACT

The embodiments of the disclosure disclose a method for determining a prediction direction, a decoder and a computer storage medium. The method is implemented by a decoder. The method includes that: a Direct Mode (DM) in a chroma intra prediction mode of a block to be decoded is acquired (S 101 ); and an index number of a prediction direction in a DM derived mode is determined based on an offset N and an index number M of a prediction direction in the DM to determine the DM derived mode (S 102 ).

CROSS-REFERENCE TO RELATED APPLICATIONS

This application is a continuation of U.S. patent application Ser. No. 17/366,787 filed on Jul. 2, 2021, which is a continuation of International Patent Application No. PCT/CN2019/070145 filed on Jan. 2, 2019, the disclosures of which are incorporated herein by reference in their entireties.

TECHNICAL FIELD

Embodiments of the disclosure relate to the technical field of determination of a prediction direction in a Direct Mode (DM) in video decoding, and particularly to a method for determining a prediction direction, a decoder and a computer storage medium.

BACKGROUND

In Versatile Video Coding (VVC), candidate modes of a chroma intra prediction mode may include a DM, a Linear Model Prediction (LM) mode, an LM_Top (LM_T) mode, an LM_Left (LM_L) mode, a Direct Current (DC) mode, a PLANAR mode, a Vertical (VER) mode and a Horizontal (HOR) mode.

At present, a candidate list of a chroma intra prediction mode in VVC may also be constructed by Multiple Direct Mode Signaling (MDMS). 17 candidates are required to be compared. The comparison count is large, dependence on a neighbouring block is relatively high, and the complexity in decoding is relatively high. In addition, in construction of the candidate list of the chroma intra prediction mode in VVC, when a DM is an angular mode, a fixed HOR mode, VER mode and 66 mode may be adopted for a default candidate angular mode. However, there is a high sequence dependence for the three fixed modes, and a conforming angular feature is usually represented by the DM, so the three modes are unlikely to be selected during practical applications. Moreover, only a local texture feature of a chroma block may be reflected in a present DM. When a chroma block corresponds to multiple collocated luma blocks, it is unreasonable to directly use the DM only for prediction. It can thus be seen that an existing candidate mode of a chroma intra prediction mode has prediction inaccuracy during decoding.

SUMMARY

In view of this, the embodiments of the disclosure are intended to provide a method for determining a prediction direction, a decoder and a non-transitory computer storage medium, which may improve the chroma intra prediction accuracy of the decoder.

According to a first aspect, a method for determining a prediction direction is provided. The method may be implemented by a decoder and include: determining a chroma intra prediction mode of a block to be decoded; acquiring a Direct Mode (DM); and determining an index number of a prediction direction in a DM derived mode based on an offset N and an index number M of a prediction direction in the DM to determine the DM derived mode, N being a positive integer and M being a positive integer.

According to a second aspect, a method for determining a prediction direction is provided. The method may be implemented by an encoder and include: determining a chroma intra prediction mode of an encoding block; acquiring a Direct Mode (DM); and determining an index number of a prediction direction in a DM derived mode based on an offset N and an index number M of a prediction direction in the DM to determine the DM derived mode, N being a positive integer and M being a positive integer.

According to a third aspect, a decoder is provided. The decoder includes a processor and a storage medium storing instructions executable by the processor. The storage medium may communicate with the processor through a communication bus to execute an operation. The instructions may be executed by the processor to implement the method for determining a prediction direction as described in the first aspect.

According to a fourth aspect, an encoder is provided. The encoder includes a processor and a storage medium storing instructions executable by the processor. The storage medium may communicate with the processor through a communication bus to execute an operation. The instructions may be executed by the processor to implement the method for determining a prediction direction as described in the second aspect.

According to a fifth aspect, a non-transitory computer storage medium is provided. The non-transitory computer storage medium may store executable instructions. The readable instructions may be executed by one or more processors to enable the one or more processors to implement the method for determining a prediction direction as described in the first aspect or the method for determining a prediction direction as described in the second aspect.

BRIEF DESCRIPTION OF THE DRAWINGS

FIG. 1 is a flowchart of a method for determining a prediction direction according to an embodiment of the disclosure.

FIG. 2 is an arrangement diagram of a present processing block.

FIG. 3A is an arrangement diagram of prediction directions.

FIG. 3B is an arrangement diagram filled with prediction values.

FIG. 4A is an arrangement diagram of prediction in a VER mode.

FIG. 4B an arrangement diagram of prediction in a HOR mode.

FIG. 5 is an arrangement diagram of luma blocks corresponding to a present processing block.

FIG. 6A is a diagram of arrangement of chroma blocks adopted in a DM in Table 2.

FIG. 6B is a diagram of arrangement of chroma blocks adopted in a chroma neighbouring block mode in Table 2.

FIG. 7 is a schematic diagram of a traversing sequence of intra prediction directions in MDMS.

FIG. 8 is an example of composition block diagram of a video coding system according to an embodiment of the disclosure.

FIG. 9 is an example of composition block diagram of a video decoding system according to an embodiment of the disclosure.

FIG. 10 is a flowchart of another method for determining a prediction direction according to an embodiment of the disclosure.

FIG. 11 is a flowchart of another method for determining a prediction direction according to an embodiment of the disclosure.

FIG. 12 is a first structure diagram of a decoder according to an embodiment of the disclosure.

FIG. 13 is a second structure diagram of a decoder according to an embodiment of the disclosure.

DETAILED DESCRIPTION

In order to make the characteristics and technical contents of the embodiments of the disclosure understood in more detail, implementation of the embodiments of the disclosure will be described below in combination with the drawings in detail. The appended drawings are only adopted for description as references and not intended to limit the embodiments of the disclosure.

The embodiments of the disclosure provide a method for determining a prediction direction. The method is implemented by a decoder. FIG. 1 is a flowchart of a method for determining a prediction direction according to an embodiment of the disclosure. Referring to FIG. 1, the method for determining a prediction direction may include the following operations.

In S101, a DM in a chroma intra prediction mode of a block to be decoded is acquired.

With the rapid development of electronic devices, video coding and decoding technologies have also been developed rapidly. Specifically, in video coding and decoding, a prediction value of a present processing block may be created based on a reconstructed image existing in space or time and only a difference value between a true value and the prediction value is transmitted, to reduce a transmitted data volume. This is called predictive coding and decoding.

FIG. 2 is an arrangement diagram of a present processing block. As shown in FIG. 2, the largest square formed by a plurality of small squares in FIG. 2 is the present processing block, circles in a row at the top of the present processing block are top-row pixels of the present processing block, and circles in a column on the left of the present processing block are left-column pixels of the present processing block. Intra prediction refers to creating prediction values of the present processing block by use of the top-row pixels and left-column pixels of the present processing block. Referring to FIG. 2, each pixel of the present processing block is predicted by use of the circles in FIG. 2, i.e., neighbouring pixels that have been recovered.

When the prediction values of the present processing block are created by use of the neighbouring pixels, multiple prediction directions are adopted. FIG. 3A-FIG. 3B are respectively an arrangement diagram of prediction directions and an arrangement diagram filled with prediction values. As shown in FIG. 3A, 67 luma prediction modes presently supported by VVC are shown. With introduction of a DM and the like, these intra prediction modes may also be adopted for a chroma block. Each prediction mode is represented by an index number. A value represented by the DM may be correlated with an angle or may be uncorrelated with an angle. For example, when the DM is correlated with an angle, index number 0 represents a PLANAR mode, and index number 1 represents a DC mode. When the DM is an angular mode, index numbers 2 to 66 represent 65 prediction directions.

It is to be noted that the DC mode and the PLANAR mode are two relatively flat structured prediction modes. In the DC mode, the whole luma or chroma block may be filled with an average value of reference pixels in a top row and a left column. In the PLANAR mode, the luma or chroma block may be filled in a gradient manner.

FIG. 3B is an arrangement diagram filled with created prediction values of pixels. For a condition that the DM is the angular mode, when an index number of a prediction direction is, for example, 66, a method for creating a prediction value of each pixel is provided. The pixels labeled with 0 to 16 are top-row data of the present processing block, each pixel of the present processing block is filled based on the pixel in the right upper corner, and the present processing block subjected to filling is shown in FIG. 3B.

When the DM is the angular mode, the index numbers 2 to 66 represent that the 65 prediction directions also include two special direction modes. For example, index number 18 represents a HOR mode, index number 50 represents a VER mode. In the two modes, horizontal prediction and vertical prediction may be performed respectively.

FIG. 4A and FIG. 4B are respectively an arrangement diagram of prediction in a VER mode and an arrangement diagram of prediction in a HOR mode. As shown in FIG. 4A, top-row pixels are represented by 0, 1, 2, 3, 4, 5, 6, 7 respectively. Prediction in the VER mode is performed by use of the top-row pixels. As shown in FIG. 4A, the column is filled with the top-row pixels. As shown in FIG. 4B, the row is filled with left-column pixels.

During a practical application, for a luma mode, prediction may be performed sequentially based on the prediction directions 0 to 66 in FIG. 3A, the prediction direction matched with the present processing block best (or corresponding to a minimum rate distortion cost difference value) may be selected to create prediction values, a coder may write a difference value and a prediction direction into a code stream, a decoder may acquire and parse the code stream to obtain an index number of the prediction direction and then may calculate a predicted luma value, and the predicted luma value may be added with a difference signal obtained by parsing the code stream to obtain a reconstructed luma value.

For chroma intra prediction, unlike the luma prediction modes, only part of prediction directions are extracted for chroma intra prediction directions, so that the complexity may be reduced. For example, a construction method for a candidate list of chroma intra prediction modes in VVC is shown in Table 1.

TABLE 1 Sequence number Name Description 1 DM See the prediction mode corresponding to the central luma block in FIG. 5 2 CCLM A predicted signal is constructed based on a CCLM_L solution of a * luma value + b, and a and b CCLM_T are calculated in CCLM based on the top row and the left column a and b are calculated in CCLM_L based on the left column a and b are calculated in CCLM_T based on the top row 3 DC The index number of the intra direction in FIG. 3A is 1, and when the DM is the DC mode, the index number is changed to 66 4 PLANAR The index number of the intra direction in FIG. 3A is 0, and when the DM is the PLANAR mode, the index number is changed to 66 5 VER The index number of the intra direction in FIG. 3A is 50, and when the DM is the VER mode, the index number is changed to 66 6 HOR The index number of the intra direction in FIG. 3A is 18, and when the DM is the HOR mode, the index number is changed to 66

FIG. 5 is an arrangement diagram of luma blocks corresponding to a present processing block. As shown in FIG. 5, the gray blocks on the left side are luma block corresponding to a present chroma block, and the gray block on the right side is the present chroma block. When intra prediction is performed on the present chroma block, a prediction direction in a central block of the luma blocks is utilized, the central block being a luma block represented by CR in the gray blocks on the left side in FIG. 5.

It can be seen from Table 1 that, when the prediction direction obtained for the DM is the same as the last four modes, the last four modes may be replaced with the mode with the index number of the prediction direction being 66.

In addition to the abovementioned construction method, there is another method, i.e., an MDMS mode. It is a more complex construction method for a candidate list of a chroma intra prediction mode. Compared with VVC, the method is 0.2% lower in code rate but excessively high in complexity. The another construction method is shown in Table 2.

TABLE 2 Sequence number Name Description 1 CCLM A predicted signal is constructed based on a solution of a * luma value + b 5 DM Intra prediction mode of corresponding prediction luma blocks at five positions, i.e., the modes center, the top-left, the top-right, the are bottom-left and the bottom-right of a selected present chroma block, i.e., the orange in order block in FIG. 6A Chroma Intra prediction mode of a chroma block neighbouring spatially neighboring to the left, top-left, block bottom-left, top and top-right blocks, i.e., the green block in FIG. 6B DC The index number of the intra direction in FIG. 3A is 1 PLANAR The index number of the intra direction in FIG. 3A is 0 Fine adjustment Mode derived by adding 1 to or 13 of the subtracting 1 from the existing angular existing angular mode mode Default mode VER (18), HOR (50), 2, 34, 66, 10, 26

FIG. 6 is a diagram of arrangement of chroma blocks adopted in a DM and a chroma neighbouring block mode in Table 2 respectively. As shown by small squares in FIG. 6A, the DM in Table 2 is an intra prediction mode that the adopted present chroma block corresponds to five positions, i.e., the center CR, the top-left TL, the top-right TL, the bottom-left BL and the bottom-right BR, of a luma block region. As shown by small squares in FIG. 6B, the chroma neighbouring block mode in Table 2 is an intra prediction mode that an adopted chroma block is spatially neighboring to left, top-left, bottom-left, top and top-right blocks.

FIG. 7 is a schematic diagram of a traversing sequence of intra prediction directions in MDMS. As shown in FIG. 7, an intra prediction sequence is: 1, the central luma block C; 2, the top-left luma block TL; 3, the top-right luma block TR; 4, the bottom-left luma block BL; 5, the bottom-right luma block BR; 6, the left chroma block L; 7, the top chroma block; 8, the bottom-left chroma block LB; 9, the top-right chroma block AR; 10, the top-left chroma block AL; 11, PLANAR; 12, DC; 13, an index number of an existing prediction direction minus 1 (equivalent to +1 derived angular modes); 14, an index number 50 of a prediction direction (equivalent to VER_IDX); 15, an index number 18 of a prediction direction (equivalent to HOR_IDX); 16, an index number 2 of a prediction direction; and 17, an index number 34 of a prediction direction (equivalent to DIA_IDX).

It can thus be seen that the construction method for a chroma intra prediction direction in VVC is simple, however, the fixed HOR, VER and 66 modes that are adopted are high in sequence dependence and cannot be adapted to all sequences very well. Subsequent statistical data shows that these modes may be selected at a lower probability.

MDMS requires 17 candidate solutions to be compared, and a gain of −0.2% may be brought. However, the comparison count is large, dependence on a neighbouring block is high, and consequently, MDMS is difficult to be implemented practically. There are some methods for reducing the complexity of MDMS, for example, deleting prediction directions 2, 3, 4 and 5 in FIG. 7 or deleting the top-right luma block AR, PLANAR, DC and adding 1 to and subtracting 1 from the index number of the existing prediction direction in FIG. 7.

For improving the accuracy of a candidate prediction direction, FIG. 8 is an example of composition block diagram of a video coding system according to an embodiment of the disclosure. As shown in FIG. 8, the video coding system 800 includes components such as transformation and quantization 801, intra estimation 802, intra prediction 803, motion compensation 804, motion estimation 805, inverse transformation and inverse quantization 806, filter control analysis 807, deblocking filtering and Sample Adaptive Offset (SAO) filtering 808, header coding and Context-based Adaptive Binary Arithmetic Coding (CABAC) 809 and a decoded picture buffer 810. For an input source video signal, a video coding block may be obtained by division of a Coding Tree Unit (CTU), and then residual pixel information obtained by performing intra or inter prediction may be transformed through the transformation and quantization 801. Transformation of the video coding block by the transformation and quantization 801 may include transforming residual information from a pixel domain to a transformation domain and quantizing an obtained transformation coefficient to further reduce a bit rate. The intra estimation 802 and the intra prediction 803 are configured to perform intra prediction on the video coding block. Specifically, the intra estimation 802 and the intra prediction 803 are configured to determine an intra prediction mode to be adopted to code the video coding block. The motion compensation 804 and the motion estimation 805 are configured to execute intra prediction coding on the received video coding block relative to one or more blocks in one or more reference pictures to provide time prediction information. Motion estimation executed by the motion estimation 805 is a process of generating a motion vector. A motion of the video coding block may be estimated based on the motion vector, and then the motion compensation 804 may perform motion compensation based on the motion vector determined by the motion estimation 805. After the intra prediction mode is determined, the intra prediction 803 is further configured to provide selected intra prediction data for the header coding and CABAC 809, and the motion estimation 805 may also send motion vector data determined by calculation to the header coding and CABAC 809. The inverse transformation and inverse quantization 806 is configured to reconstruct the video coding block, namely reconstructing a residual block in the pixel domain. An artifact with a blocking effect in the reconstructed residual block may be removed through the filter control analysis 807 and the deblocking filtering and SAO filtering 808, and then the reconstructed residual block may be added to a predictive block in a picture of the decoded picture buffer 810 to generate a reconstructed video coding block. The header coding and CABAC 809 is configured to code various coding parameters and quantized transformation coefficients. In a CABAC-based coding algorithm, a context content may be configured to code information indicating the determined intra prediction mode based on adjacent coding blocks to output a code stream of the video signal. The decoded picture buffer 810 is configured to store the reconstructed video coding block as a prediction reference. As video images are coded, new reconstructed video coding blocks may be continuously generated, and these reconstructed video coding blocks may be stored in the decoded picture buffer 810.

FIG. 9 is an example of composition block diagram of a video decoding system according to an embodiment of the disclosure. As shown in FIG. 9, the video decoding system 900 includes components such as header decoding and CABAC decoding 901, inverse transformation and inverse quantization 902, intra prediction 903, motion compensation 904, deblocking filtering and SAO filtering 905 and a decoded picture buffer 906. After coding processing shown in FIG. 8 is performed on an input video signal, a code stream of the video signal is output. The code stream may be input to the video decoding system 900, and may be processed through the header decoding and CABAC decoding 901 at first to obtain a decoded transformation coefficient. A residual block may be generated in a pixel domain by processing of the inverse transformation and inverse quantization 902 for the transformation coefficient. The intra prediction 903 may be configured to generate prediction data of a present video decoding block based on a determined intra prediction mode and data of a previous decoded block from a present frame or picture. The motion compensation 904 may analyze a motion vector and another associated syntactic element to determine predictive information for the video decoding block and generate a predictive block of the video decoding block that is presently decoded based on the predictive information. The residual block from the inverse transformation and inverse quantization 902 and the corresponding predictive block generated by the intra prediction 903 or the motion compensation 904 may be summed to form a decoded block. An artifact with a blocking effect in the decoded block may be removed through the deblocking filtering and SAO filtering 905, thereby improving the video quality. The decoded block may be stored in the decoded picture buffer 906. The decoded picture buffer 906 may store a reference image for subsequent intra prediction or motion compensation and may be also configured to output a video signal, namely the original video signal that is recovered may be obtained.

The embodiment of the disclosure is mainly implemented by the part of the intra prediction 803 shown in FIG. 8 and the part of the intra prediction 903 shown in FIG. 9. The embodiment of the disclosure may be implemented by both the coding system and the decoding system, but no limits are made thereto in the embodiments of the disclosure.

Referring to FIG. 1 again, for obtaining a DM derived mode, a DM is acquired at first, and in such a manner, an index number of a prediction direction in the DM may be obtained.

In S102, an index number of a prediction direction in a DM derived mode is determined based on an offset N and an index number M of a prediction direction in the DM to determine the DM derived mode.

N is a positive integer larger than or equal to 2, and M is a positive integer.

Here, it is to be noted that prediction directions represented by index numbers in the DM may be the same as or different from prediction directions represented by index numbers in the block to be decoded and this is related to a shape and/or size of the block to be decoded. For example, when a width-height ratio of the block to be decoded is the same as that of a blocking shape of a reference region, all the index numbers of the prediction directions in the DM are the same as the index numbers of the prediction directions in the block to be decoded; and when the width-height ratio of the block to be decoded is different from that of the blocking shape of the reference region, prediction directions corresponding to sequence numbers under an extended mode may be different in a wide-angle mode.

During a practical application, N is usually 3, 5 or 7. Here, no specific limits are made thereto in the embodiment of the disclosure.

For determining an index number of a prediction direction in the DM derived mode, FIG. 10 is a flowchart of another method for determining a prediction direction according to an embodiment of the disclosure. Referring to FIG. 10, S102 may include the following operations.

In S1001, M and N are summed to obtain a sum value, and a difference value between M and N is calculated.

In S1002, a minimum value K1 of index numbers of prediction directions in the DM and a maximum value K2 of the index numbers of the prediction directions in the DM are acquired.

In S1003, the index number of the prediction direction in the DM derived mode is determined based on the sum value, the difference value, K1 and K2 to determine the DM derived mode.

That is, a sum of M and N and a difference between M and N may be calculated at first, and moreover, K1 and K2 may be acquired. Here, there are two conditions. One is that the index numbers of the prediction directions in the DM are the same as the index numbers of the prediction directions in the block to be decoded. The other is that the index numbers of the prediction directions in the DM are different from the index numbers of the prediction directions in the block to be decoded.

When the index numbers of the prediction directions in the DM are the same as the index numbers of the prediction directions in the block to be decoded, S1003 may include the following operations for determining the index number of the prediction direction in the DM derived mode in an optional embodiment.

When the sum value is smaller than or equal to K2 and the difference value is larger than or equal to K1, it may be determined that the index numbers of the prediction directions in the DM derived mode are the sum value and the difference value respectively.

When the difference value is smaller than or equal to K1, it may be determined that the index numbers of the prediction directions in the DM derived mode are the sum value and a first output value respectively, the first output value being a value obtained by inputting M and N to a first preset formula.

When the sum value is larger than or equal to K2, it may be determined that the index numbers of the prediction directions in the DM derived mode are a second output value and the difference value respectively, the second output value being a value obtained by inputting M and N to a second preset formula.

The first preset formula and the second preset formula may be obtained according to K1 and K2, and the variables M and N are preset.

For example, when the DM is an angular mode, the minimum value of the index numbers of the prediction directions in the DM is 2 and the maximum value is 66. The DM derived mode may be obtained by adding and subtracting N and performing mapping to an effective angle range. A value of N is greater than 2, recommended to be 3, 5 or 7.

For example, N is 5, and the present DM is an angular mode M (2≤M≤66). (Here, like adding and substracting N in an angular mode in luma intra prediction candidates), it is assumed a wide-angle mode is not considered (equivalently, the index numbers of the prediction directions in the DM are the same as the index numbers of the prediction directions in the block to be decoded), the method for determining a prediction direction is as follows.

When M+N≤66 and an index number of a prediction direction in the DM derived mode is M+N and M−N.

When M−N≤2, an index number of a prediction direction in the DM derived mode is M+N and ((M+62−N) % 64)+2.

When M+N≥66, an index number of a prediction direction in the DM derived mode is ((M−2+N) % 64)+2 and M−N.

The symbol “%” represents a remainder calculation. For example, when the DM is 40 and an offset N is 5, index numbers of prediction directions in the DM derived mode are 35 and 45. When the DM is 62, the derived mode is 57 and 3 (62+5=67, 67 exceeds a range [2, 66] and may be limited back to 3 by modulus calculation, except in a wide-angle mode). When the wide-angle mode is considered, mapping may be performed based on a real angle range. Then, the construction method for a chroma intra prediction direction in the example is shown in Table 3.

TABLE 3 Sequence number Name Description 1 DM See the prediction mode corresponding to the central luma block in FIG. 5 2 CCLM A predicted signal is constructed based on a CCLM_L solution of a * luma value + b, and a and b CCLM_T are calculated in CCLM based on the top row and the left column a and b are calculated in CCLM_L based on the left column a and b are calculated in CCLM_T based on the top row 3 DM + N Offsetting the direction in the DM clockwise by N 4 DM − N Offsetting the direction in the DM counterclockwise by N 5 DC The index number of the intra direction in FIG. 3A is 1, and when the DM is the DC mode, the index number is changed to 66 6 PLANAR The index number of the intra direction in FIG. 3A is 0, and when the DM is the PLANAR mode, the index number is changed to 66

When the index numbers of the prediction directions in the DM are the same as the index numbers of the prediction directions in the block to be decoded, S1003 may include the following operations for determining an index number of a prediction direction in the DM derived mode in an optional embodiment.

When the sum value is smaller than or equal to K2 and the difference value is larger than or equal to K1, it may be determined that index numbers of prediction directions in the DM derived mode is the sum value and the difference value respectively.

When the difference value is smaller than or equal to K1, it may be determined that index numbers of the prediction directions in the DM derived mode are the sum value and K1 respectively.

When the sum value is larger than or equal to K2, it may be determined that index numbers of prediction directions in the DM derived mode are the difference value and K2 respectively.

For example, when the DM is an angular mode, the minimum value of the index numbers of the prediction directions in the DM is 2 and the maximum value is 66. The DM derived mode is obtained by adding and subtracting N. It is assumed the present DM is an M angular mode (2≤M≤66) (Here, like addition and subtraction of N in an angular mode in luma intra prediction candidates).

When M+N≤66 and M−N≥2, the DM derived mode is M+N and M−N.

When M+N≥66, the DM derived mode is M−N and 66.

When M−N≤2, the DM derived mode is 2 and M+N.

For example, the DM is 40 and an offset N is 5. In such a case, the DM derived mode is 35 and 45. When the DM is 62, the derived mode is 57 and 2 (62+5=67, 67 exceeds the range [2, 66] and may be limited to 66).

For determining AN index number of A prediction direction in the DM derived mode, in an optional embodiment, when the index numbers of the prediction directions in the DM are different from the index numbers of the prediction directions in the block to be decoded, correspondingly, FIG. 11 is a flowchart of another method for determining a prediction direction according to an embodiment of the disclosure. As shown in FIG. 11, S102 may include the following operations.

In S1101, a minimum value L1 of index numbers of prediction directions in the block to be decoded and a maximum value L2 of the index numbers of the prediction directions in the DM are acquired.

In S1102, corresponding relationships between the index numbers of the prediction directions in the DM and the index numbers of the prediction directions in the block to be decoded are acquired.

In S1103, an index number is determined from the index numbers of the prediction directions in the block to be decoded based on the sum value, the difference value, L1 and L2.

In S1104, an index number, corresponding to the determined index number, of a prediction direction in the DM is determined as the index number of the prediction direction in the DM derived mode according to the corresponding relationships to determine the DM derived mode.

Specifically, when the block to be decoded is a rectangle, the prediction directions represented by the index numbers in the block to be decoded are different from but have corresponding relationships with the prediction directions represented by the index numbers in the DM. For example, when the block to be decoded is a rectangle, the prediction directions in the block to be decoded may be rotated clockwise or counterclockwise by certain degrees relative to the prediction directions in the DM. The index numbers of different prediction directions may correspond to each other, and the finally obtained index numbers of the prediction directions in the DM derived mode are within the range of the index numbers of the prediction directions in the DM.

For determining an index number from the index numbers of the prediction directions in the block to be decoded, in an optional embodiment, S1103 may include the following operations.

When the sum value is smaller than or equal to L2 and the difference value is larger than or equal to L1, it may be determined that the determined index numbers are the sum value and the difference value respectively.

When the difference value is smaller than or equal to L1, it may be determined that the determined index numbers are the sum value and a third output value respectively, the third output value being a value obtained by inputting M and N to a third preset formula.

When the sum value is larger than or equal to L2, it may be determined that the determined index numbers are a fourth output value and the difference value respectively, the fourth output value being a value obtained by inputting M and N to a fourth preset formula.

The third preset formula and the fourth preset formula may be obtained according to L1 and L2, and the variables M and N are preset.

For example, when the DM is an angular mode, the DM derived mode may be obtained by adding and subtracting N. When the present DM is an M angular mode (2≤M≤66), it can be seen from a corresponding relationship in a wide-angle mode that a real effective range (equivalent to the index numbers of the prediction directions in the block to be decoded) is (8≤M≤72). For example, for a wide-angle mode with a width-height ratio being 2, a corresponding relationship is shown in Table 4.

TABLE 4 Mode number 2 3 4 5 6 7 Real mode 67 68 69 70 71 72

A process for the DM derived mode is as follows.

When M+N≤72 and M−N≥8 the DM derived mode is M+N and M−N.

When M−N≤8, the DM derived mode is M+N and ((M+56−N) % 64)+8.

When M+N≥72, the DM derived mode is ((M−8+N) % 64)+8 and M−N.

When an obtained result is 67 to 72, the result may be mapped to 2 to 66 according to the correspondences in Table 4.

For determining an index number from the index numbers of the prediction directions in the block to be decoded, in an optional embodiment, S1103 may include the following operations.

When the sum value is smaller than or equal to L2 and the difference value is larger than or equal to L1, it may be determined that the determined index numbers are the sum value and the difference value respectively.

When the difference value is smaller than or equal to L1, it may be determined that the determined index numbers are the sum value and L1 respectively.

When the sum value is larger than or equal to L2, it may be determined that the determined index numbers are the difference value and L2 respectively.

For example, column addition to the DM derived mode is proposed in the art, and a specific derivation method in a wide-angle mode is as follows.

When the DM is an angular mode, the DM derived mode may be obtained by adding and subtracting N. When the present DM is an M angle mode (2≤M≤66), it can be seen from a corresponding relationship in a wide-angle mode that a real effective range is (8≤M≤72), a corresponding manner being shown in Table 4. The process for the DM derived mode is as follows.

When M+N≤72 and M−N≥8, the DM derived mode is M+N and M−N.

When M+N≤8, the DM derived mode is M+N and 8.

When M+N≥72, the DM derived mode is 72 and M−N.

When the obtained result is 67 to 72, the result may be mapped to 2 to 66 according to the correspondences in Table 1.

In an optional implementation, after S102, the method may further include the following operation.

It may be determined that a decoding priority of the DM derived mode is lower than a decoding priority of the DM and lower than a decoding priority of a CCLM mode.

That is, the DM derived mode may be set after the DM and the CCLM mode are set. In such a manner, in a decoding process, the higher the priority is, the lower a received bit rate is.

In an optional implementation, after S102, the method may further include the following operation.

It may be determined that the decoding priority of the DM derived mode is lower than the decoding priority of the DM, lower than the decoding priority of the CCLM mode, higher than a decoding priority of a VER mode and higher than a decoding priority of a HOR mode.

When the DM is an angular mode, a construction method for a chroma intra prediction direction in the example is shown in Table 5.

TABLE 5 Sequence number Name Description 1 DM See the prediction mode corresponding to the central luma block in FIG. 5 2 CCLM A predicted signal is constructed based on a CCLM_L solution of a * luma value + b, and a CCLM_T and b are calculated in CCLM based on the top row and the left column a and b are calculated in CCLM_L based on the left column a and b are calculated in CCLM_T based on the top row 3 DM + N Offsetting the direction in the DM clockwise by N 4 DM − N Offsetting the direction in the DM counterclockwise by N 5 DC The index number of the intra direction in FIG. 3A is 1, and when the DM is the DC mode, the index number is changed to 66 6 PLANAR The index number of the intra direction in FIG. 3A is 0, and when the DM is the PLANAR mode, the index number is changed to 66 7 VER The index number of the intra direction in FIG. 3A is 50, and when the DM is the VER mode, the index number is changed to 66 8 HOR The index number of the intra direction in FIG. 3A is 18, and when the DM is the HOR mode, the index number is changed to 66

In an optional implementation, after S102, the method may further include the following operation.

It may be determined that the decoding priority of the DM derived mode is lower than the decoding priority of the DM, lower than the decoding priority of the CCLM mode, lower than a decoding priority of a DC mode and lower than a decoding priority of a PLANAR mode.

When the DM is an angular mode, a construction method for a chroma intra prediction direction in the example is shown in Table 6.

TABLE 6 Sequence number Name Description 1 DM See the prediction mode corresponding to the central luma block in FIG. 5 2 CCLM A predicted signal is constructed based on a CCLM_L solution of a * luma value + b, and a and b CCLM_T are calculated in CCLM based on the top row and the left column a and b are calculated in CCLM_L based on the left column a and b are calculated in CCLM_T based on the top row 3 DC The index number of the intra direction in FIG. 3A is 1, and when the DM is the DC mode, the index number is changed to 66 4 PLANAR The index number of the intra direction in FIG. 3A is 0, and when the DM is the PLANAR mode, the index number is changed to 66 5 DM + N Offsetting the direction in the DM clockwise by N 6 DM − N Offsetting the direction in the DM counterclockwise by N

In an optional implementation, after S102, the method may further include the following operation.

It may be determined that the decoding priority of the DM derived mode is lower than the decoding priority of the DM, lower than the decoding priority of the CCLM mode, lower than the decoding priority of the DC mode, lower than the decoding priority of the PLANAR mode, higher than the decoding priority of the VER mode and higher than the decoding priority of the HOR mode.

When the DM is an angular mode, a construction method for a chroma intra prediction direction in the example is shown in Table 7.

TABLE 7 Sequence number Name Description 1 DM See the prediction mode corresponding to the central luma block in FIG. 5 2 CCLM A predicted signal is constructed based on a CCLM_L solution of a * luma value + b, and a and b CCLM_T are calculated in CCLM based on the top row and the left column a and b are calculated in CCLM_L based on the left column a and b are calculated in CCLM_T based on the top row 3 DC The index number of the intra direction in FIG. 3A is 1, and when the DM is the DC mode, the index number is changed to 66 4 PLANAR The index number of the intra direction in FIG. 3A is 0, and when the DM is the PLANAR mode, the index number is changed to 66 5 DM + N Offsetting the direction in the DM clockwise by N 6 DM − N Offsetting the direction in the DM counterclockwise by N 7 VER The index number of the intra direction in FIG. 3A is 50, and when the DM is the VER mode, the index number is changed to 66 8 HOR The index number of the intra direction in FIG. 3A is 18, and when the DM is the HOR mode, the index number is changed to 66

Optionally, according to the embodiment of the disclosure, the determined DM derived mode may be extended prior to the fixed HOR, VER and 66 modes according to the DM based on a construction method for a chroma intra prediction direction in 2.2.1 VVC to improve the quality of a candidate prediction direction, and the DM derived mode is set after the CCLM mode and before other angular modes are set.

The embodiment of the disclosure provides a method for determining a prediction direction. The method is implemented by a decoder. The method includes that: a DM in a chroma intra prediction mode of a block to be decoded is acquired, and an index number of a prediction direction in a DM derived mode is determined based on an index number M of a prediction direction in the DM and preset N to determine the DM derived mode. That is, in the embodiments of the disclosure, the index number of the prediction direction in the DM derived mode may be determined based on the acquired index number of the prediction direction in the DM in candidate modes of the chroma intra prediction mode and a value of N, thereby determining the DM derived mode as a candidate mode of the chroma intra prediction mode for intra prediction of a chroma block to be decoded. The DM derived mode may be added to the candidate modes of the chroma intra prediction mode for intra prediction of the block to be decoded, so that the decoding accuracy may be improved, and the transmission quality of video data may further be improved.

Based on the same inventive concept of the abovementioned embodiment, referring to FIG. 12, FIG. 12 is a first structure diagram of a decoder according to an embodiment of the disclosure. The decoder may include an acquisition module 121 and a first determination module 122.

The acquisition module 121 is configured to acquire a DM in a chroma intra prediction mode of a block to be decoded. The first determination module 122 is configured to determine an index number of a prediction direction in a DM derived mode based on an offset N and an index number M of a prediction direction in the DM to determine the DM derived mode, N being a positive integer larger than or equal to 2 and M being a positive integer.

In the solution, the first determination module 122 may include a calculation submodule, a first acquisition submodule and a first determination submodule.

The calculation submodule is configured to sum M and N to obtain a sum value and calculate a difference value between M and N.

The first acquisition submodule is configured to acquire a minimum value K1 of index numbers of prediction directions in the DM and a maximum value K2 of the index numbers of the prediction directions in the DM.

The first determination submodule is configured to determine the index number of the prediction direction in the DM derived mode based on the sum value, the difference value, K1 and K2 to determine the DM derived mode.

In the solution, the first determination submodule is configured to:

when the sum value is smaller than or equal to K2 and the difference value is larger than or equal to K1, determine that the index numbers of the prediction directions in the DM derived mode are the sum value and the difference value respectively;

when the difference value is smaller than or equal to K1, determine that the index numbers of the prediction directions in the DM derived mode are the sum value and a first output value respectively, the first output value being a value obtained by inputting M and N to a first preset formula; and

when the sum value is larger than or equal to K2, determine that the index numbers of the prediction directions in the DM derived mode are a second output value and the difference value respectively, the second output value being a value obtained by inputting M and N to a second preset formula.

In the solution, the first determination submodule is configured to:

when the sum value is smaller than or equal to K2 and the difference value is larger than or equal to K1, determine that the index numbers of the prediction directions in the DM derived mode are the sum value and the difference value respectively;

when the difference value is smaller than or equal to K1, determine that the index numbers of the prediction directions in the DM derived mode are the sum value and K1 respectively; and

when the sum value is larger than or equal to K2, determine that the index numbers of the prediction directions in the DM derived mode are the difference value and K2 respectively.

In the solution, when the index numbers of the prediction directions in the DM are different from index numbers of prediction directions in the block to be decoded, correspondingly, the first determination submodule may include a second acquisition submodule, a third acquisition submodule, a second determination submodule and a third determination submodule.

The second acquisition submodule is configured to acquire a minimum value L1 of index numbers of prediction directions in the block to be decoded and a maximum value L2 of the index numbers of the prediction directions in the DM.

The third acquisition submodule is configured to acquire corresponding relationships between the index numbers of the prediction directions in the DM and the index numbers of the prediction directions in the block to be decoded.

The second determination submodule is configured to determine an index number from the index numbers of the prediction directions in the block to be decoded based on the sum value, the difference value, L1 and L2.

The third determination submodule is configured to determine an index number, corresponding to the determined index number, of a prediction direction in the DM as the index number of the prediction direction in the DM derived mode according to the corresponding relationships to determine the DM derived mode.

In the solution, the second determination submodule is configured to:

when the sum value is smaller than or equal to L2 and the difference value is larger than or equal to L1, determine that the determined index numbers are the sum value and the difference value respectively;

when the difference value is smaller than or equal to L1, determine that the determined index numbers are the sum value and a third output value respectively, the third output value being a value obtained by inputting M and N to a third preset formula; and

when the sum value is larger than or equal to L2, determine that the determined index numbers are a fourth output value and the difference value respectively, the fourth output value being a value obtained by inputting M and N to a fourth preset formula.

In the solution, the second determination submodule is configured to:

when the sum value is smaller than or equal to L2 and the difference value is larger than or equal to L1, determine that the determined index numbers are the sum value and the difference value respectively;

when the difference value is smaller than or equal to L1, determine that the determined index numbers are the sum value and L1 respectively; and

when the sum value is larger than or equal to L2, determine that the determined index numbers are the difference value and L2 respectively.

In the solution, the decoder may further include a second determination module.

The second determination module is configured to, after the index number of the prediction direction in the DM derived mode is determined based on the preset offset N and the index number M of the prediction direction in the DM to determine the DM derived mode, determine that a decoding priority of the DM derived mode is lower than a priority of the DM and lower than a decoding priority of a CCLM mode.

In the solution, the second determination module is configured to:

determine that the decoding priority of the DM derived mode is lower than the decoding priority of the DM, lower than the decoding priority of the CCLM mode, higher than a decoding priority of a VER mode and higher than a decoding priority of a HOR mode.

In the solution, the second determination module is configured to:

determine that the decoding priority of the DM derived mode is lower than the decoding priority of the DM, lower than the decoding priority of the CCLM mode, lower than a decoding priority of a DC mode and lower than a decoding priority of a PLANAR mode.

In the solution, the second determination module is configured to:

determine that the decoding priority of the DM derived mode is lower than the decoding priority of the DM, lower than the decoding priority of the CCLM mode, lower than the decoding priority of the DC mode, lower than the decoding priority of the PLANAR mode, higher than the decoding priority of the VER mode and higher than the decoding priority of the HOR mode.

It can be understood that, in the embodiment, “unit” may be part of a circuit, part of a processor, part of a program or software and the like, and may also be modular or non-modular.

In addition, each unit in the embodiment may be integrated into a processing unit, or each unit may also exist independently. Two or more than two units may also be integrated into a unit. The integrated unit may be implemented in a hardware form or may also be implemented in form of software function module.

When implemented in form of software function module and sold or used not as an independent product, the integrated unit may be stored in a computer-readable storage medium. Based on such an understanding, the technical solution of the embodiment substantially or parts making contributions to the conventional art or all or part of the technical solution may be embodied in form of software product, and the computer software product is stored in a storage medium, including a plurality of instructions configured to enable a computer device (which may be a personal computer, a server, a network device or the like) or a processor to execute all or part of the operations of the method in the embodiment. The storage medium includes: various media capable of storing program codes such as a U disk, a mobile hard disk, a Read Only Memory (ROM), a Random Access Memory (RAM), a magnetic disk or an optical disk.

FIG. 13 is a second structure diagram of a decoder according to an embodiment of the disclosure. As shown in FIG. 13, the embodiment of the disclosure provides a decoder 130.

The decoder includes a processor 131 and a storage medium 132 storing instructions executable by the processor 131. The storage medium 132 may communicate with the processor 131 through a communication bus 133 to execute an operation. The instructions may be executed by the processor 131 to implement the method for determining a prediction direction in embodiment 1.

It is to be noted that, during a practical application, components in a terminal may be coupled together through the communication bus 133. It can be understood that the communication bus 133 is configured to implement connection communication between these components. The communication bus 133 may include a data bus and further include a power bus, a control bus and a state signal bus. However, for clear description, various buses in FIG. 13 are marked as the communication bus 133.

The embodiments of the disclosure provide a computer storage medium, which stores executable instructions. The readable instructions may be executed by one or more processors to enable the one or more processor to implement the method for determining a prediction direction in one or more abovementioned embodiments.

It can be understood that the memory in the embodiment of the disclosure may be a volatile memory or a nonvolatile memory, or may include both the volatile and nonvolatile memories. The nonvolatile memory may be a ROM, a Programmable ROM (PROM), an Erasable PROM (EPROM), an Electrically EPROM (EEPROM) or a flash memory. The volatile memory may be a RAM, and is used as an external high-speed cache. It is exemplarily but unlimitedly described that RAMs in various forms may be adopted, such as a Static RAM (SRAM), a Dynamic RAM (DRAM), a Synchronous DRAM (SDRAM), a Double Data Rate SDRAM (DDRSDRAM), an Enhanced SDRAM (ESDRAM), a Synchlink DRAM (SLDRAM) and a Direct Rambus RAM (DRRAM). It is to be noted that the memory of a system and method described in the disclosure is intended to include, but not limited to, memories of these and any other proper types.

The processor may be an integrated circuit chip with a signal processing capability. In an implementation, each operation of the method may be completed by an integrated logic circuit of hardware in the processor or an instruction in a software form. The processor may be a universal processor, a Digital Signal Processor (DSP), an Application Specific Integrated Circuit (ASIC), a Field Programmable Gate Array (FPGA) or another programmable logical device, discrete gate or transistor logical device and discrete hardware component. Each method, operation and logical block diagram disclosed in the embodiments of the disclosure may be implemented or executed. The universal processor may be a microprocessor or any conventional processor and the like. The operations of the method in combination with the embodiments of the disclosure may be directly embodied to be executed and completed by a hardware decoding processor or executed and completed by a combination of hardware and software modules in the decoding processor. The software module may be located in a mature storage medium in this field such as a RAM, a flash memory, a ROM, a PROM or EEPROM and a register. The storage medium may be located in a memory, and the processor may read information in the memory and complete the operations of the method in combination with hardware.

It can be understood that these embodiments described in the disclosure may be implemented by hardware, software, firmware, middleware, a microcode or a combination thereof. In case of implementation with the hardware, the processing unit may be implemented in one or more ASICs, DSPs, DSP Devices (DSPDs), Programmable Logic Devices (PLDs), FPGAs, universal processors, controllers, microcontrollers, microprocessors, other electronic units configured to execute the functions in the disclosure or combinations thereof.

In case of implementation with software, the technology of the disclosure may be implemented through the modules (for example, processes and functions) implementing the functions in the disclosure. A software code may be stored in the memory and executed by the processor. The memory may be implemented in the processor or outside the processor.

It is to be noted that terms “include” and “contain” or any other variant thereof is intended to cover nonexclusive inclusions herein, so that a process, method, object or device including a series of elements not only includes those elements but also includes other elements which are not clearly listed or further includes elements intrinsic to the process, the method, the object or the device. Under the condition of no more limitations, an element defined by the statement “including a/an” does not exclude existence of the same other elements in a process, method, object or device including the element.

The sequence numbers of the embodiments of the disclosure are adopted not to represent superiority-inferiority of the embodiments but only for description.

From the above descriptions about the implementations, those skilled in the art may clearly know that the method of the abovementioned embodiments may be implemented in a manner of combining software and a necessary universal hardware platform, and may also be implemented through hardware, but the former is a preferred implementation under many circumstances. Based on such an understanding, the technical solutions of the disclosure substantially or parts making contributions to the conventional art may be embodied in form of software product, and the computer software product is stored in a storage medium (for example, a ROM/RAM, a magnetic disk and an optical disk), including a plurality of instructions configured to enable a computer (which may be a personal computer, a server, a network device or the like) to execute the method in each embodiment of the disclosure.

The embodiments of the disclosure are described above in combination with the drawings, but the disclosure is not limited to the abovementioned specific implementations. The abovementioned specific implementations are not restrictive but only schematic, those of ordinary skill in the art may be inspired by the disclosure to implement many forms without departing from the purpose of the disclosure and the scope of protection of the claims, and all these shall fall within the scope of protection of the disclosure.

INDUSTRIAL APPLICABILITY

In the embodiments of the disclosure, the embodiments of the disclosure provide a method for determining a prediction direction, a decoder and a computer storage medium. The method may be implemented by the decoder. The method includes that: a DM in a chroma intra prediction mode of a block to be decoded is acquired, and an index number of a prediction direction in a DM derived mode is determined based on an index number M of a prediction direction in the DM and preset N to determine the DM derived mode. That is, in the embodiments of the disclosure, the index number of the prediction direction in the DM derived mode may be determined based on the acquired index number of the prediction direction in the DM in candidate modes of the chroma intra prediction mode and a value of N, thereby determining the DM derived mode as a candidate mode of the chroma intra prediction mode for intra prediction of a chroma block to be decoded. The DM derived mode may be added to the candidate modes of the chroma intra prediction mode for intra prediction of the block to be decoded, so that the decoding accuracy may be improved, and the transmission quality of video data may further be improved. 

What is claimed is: 1.-16. (canceled)
 17. A method for determining a prediction direction, implemented by a decoder and comprising: determining a chroma intra prediction mode of a block to be decoded; acquiring a Direct Mode (DM) in the chroma intra prediction mode; and in response to that a sum value of M and N is larger than or equal to K2 and a difference value between the M and N is smaller than or equal to K1, determining that an index value of prediction direction of a DM derived mode is the K1 and the K2 respectively, wherein the N is an offset, the M is an index value of prediction direction of the DM, the K1 is a minimum value of index values of prediction directions of the DM, and K2 is a maximum value of the index values of the prediction directions of the DM, and wherein the DM derived mode is set after a Cross-Component Linear Model Prediction (CCLM) mode is set.
 18. A method for determining a prediction direction, implemented by an encoder and comprising: determining a chroma intra prediction mode of a block to be decoded; acquiring a Direct Mode (DM) in the chroma intra prediction mode; and in response to that a sum value of M and N is larger than or equal to K2 and a difference value between the M and N is smaller than or equal to K1, determining that an index value of prediction direction of a DM derived mode is the K1 and the K2 respectively, wherein the N is an offset, the M is an index value of prediction direction of the DM, the K1 is a minimum value of index values of prediction directions of the DM, and K2 is a maximum value of the index values of the prediction directions of the DM, and wherein the DM derived mode is set after a Cross-Component Linear Model Prediction (CCLM) mode is set.
 19. A decoder, comprising: a processor; and a storage medium storing instructions executable by the processor, wherein the storage medium is configured to communicate with the processor through a communication bus to execute an operation, and the instructions are executed by the processor to implement the method for determining a prediction direction, the method comprising: determining a chroma intra prediction mode of a block to be decoded; acquiring a Direct Mode (DM) in the chroma intra prediction mode; and in response to that a sum value of M and N is larger than or equal to K2 and a difference value between the M and N is smaller than or equal to K1, determining that an index value of prediction direction of a DM derived mode is the K1 and the K2 respectively, wherein the N is an offset, the M is an index value of prediction direction of the DM, the K1 is a minimum value of index values of prediction directions of the DM, and K2 is a maximum value of the index values of the prediction directions of the DM, and wherein the DM derived mode is set after a Cross-Component Linear Model Prediction (CCLM) mode is set.
 20. An encoder, comprising: a processor; and a storage medium storing instructions executable by the processor, wherein the storage medium is configured to communicate with the processor through a communication bus to execute an operation, and the instructions are executed by the processor to implement the method for determining a prediction direction, the method comprising: determining a chroma intra prediction mode of a block to be decoded; acquiring a Direct Mode (DM) in the chroma intra prediction mode; and in response to that a sum value of M and N is larger than or equal to K2 and a difference value between the M and N is smaller than or equal to K1, determining that an index value of prediction direction of a DM derived mode is the K1 and the K2 respectively, wherein the N is an offset, the M is an index value of prediction direction of the DM, the K1 is a minimum value of index values of prediction directions of the DM, and K2 is a maximum value of the index values of the prediction directions of the DM, and wherein the DM derived mode is set after a Cross-Component Linear Model Prediction (CCLM) mode is set. 